<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.20"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Newton Dynamics: ndThread Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(function() { init_search(); });
/* @license-end */
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="logo_php.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Newton Dynamics
   &#160;<span id="projectnumber">4.00</span>
   </div>
  </td>
   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.svg"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
          </span>
        </div>
</td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.20 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classnd_thread.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="classnd_thread-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">ndThread Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p>Base class for for all multi thread functionality.  
 <a href="classnd_thread.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for ndThread:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classnd_thread.png" usemap="#ndThread_map" alt=""/>
  <map id="ndThread_map" name="ndThread_map">
<area href="classnd_class_alloc.html" title="Base class for providing memory allocation for all other engine classes." alt="ndClassAlloc" shape="rect" coords="0,56,175,80"/>
<area href="classnd_thread_name.html" alt="ndThreadName" shape="rect" coords="185,56,360,80"/>
<area href="classnd_semaphore.html" title="Generic counting semaphore for thread synchronization." alt="ndSemaphore" shape="rect" coords="370,56,545,80"/>
<area href="classnd_atomic.html" alt="ndAtomic&lt; bool &gt;" shape="rect" coords="555,56,730,80"/>
<area href="classnd_thread_pool.html" alt="ndThreadPool" shape="rect" coords="462,168,637,192"/>
<area href="classnd_scene.html" alt="ndScene" shape="rect" coords="370,224,545,248"/>
<area href="classnd_thread_background_worker.html" alt="ndThreadBackgroundWorker" shape="rect" coords="555,224,730,248"/>
<area href="classnd_world_scene.html" alt="ndWorldScene" shape="rect" coords="370,280,545,304"/>
<area href="classnd_world_scene_cuda.html" alt="ndWorldSceneCuda" shape="rect" coords="370,336,545,360"/>
  </map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a3c5a9086702368fab9748d6e3880e80b"><td class="memItemLeft" align="right" valign="top"><a id="a3c5a9086702368fab9748d6e3880e80b"></a>
D_CORE_API&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnd_thread.html#a3c5a9086702368fab9748d6e3880e80b">ndThread</a> ()</td></tr>
<tr class="memdesc:a3c5a9086702368fab9748d6e3880e80b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Empty default constructor after creation all threads go to a wait state. <br /></td></tr>
<tr class="separator:a3c5a9086702368fab9748d6e3880e80b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a691445db4125a0c69fa90e852de123"><td class="memItemLeft" align="right" valign="top">virtual D_CORE_API&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnd_thread.html#a0a691445db4125a0c69fa90e852de123">~ndThread</a> ()</td></tr>
<tr class="memdesc:a0a691445db4125a0c69fa90e852de123"><td class="mdescLeft">&#160;</td><td class="mdescRight">Empty, does not terminate the thread loop.  <a href="classnd_thread.html#a0a691445db4125a0c69fa90e852de123">More...</a><br /></td></tr>
<tr class="separator:a0a691445db4125a0c69fa90e852de123"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab115539d769389c3864e38ab4bf90a7"><td class="memItemLeft" align="right" valign="top">D_CORE_API void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnd_thread.html#aab115539d769389c3864e38ab4bf90a7">SetName</a> (const char *const name)</td></tr>
<tr class="memdesc:aab115539d769389c3864e38ab4bf90a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set thread name.  <a href="classnd_thread.html#aab115539d769389c3864e38ab4bf90a7">More...</a><br /></td></tr>
<tr class="separator:aab115539d769389c3864e38ab4bf90a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac490fc877906a5a0c804dbd1c7f4b89"><td class="memItemLeft" align="right" valign="top"><a id="aac490fc877906a5a0c804dbd1c7f4b89"></a>
D_CORE_API void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnd_thread.html#aac490fc877906a5a0c804dbd1c7f4b89">Signal</a> ()</td></tr>
<tr class="memdesc:aac490fc877906a5a0c804dbd1c7f4b89"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the thread, to execute one call to and go back to a wait state <br  />
 <br /></td></tr>
<tr class="separator:aac490fc877906a5a0c804dbd1c7f4b89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aadf8f7045bb22fb23f76d1cf91e04c35"><td class="memItemLeft" align="right" valign="top">D_CORE_API void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnd_thread.html#aadf8f7045bb22fb23f76d1cf91e04c35">Finish</a> ()</td></tr>
<tr class="memdesc:aadf8f7045bb22fb23f76d1cf91e04c35"><td class="mdescLeft">&#160;</td><td class="mdescRight">Force the thread loop to terminate.  <a href="classnd_thread.html#aadf8f7045bb22fb23f76d1cf91e04c35">More...</a><br /></td></tr>
<tr class="separator:aadf8f7045bb22fb23f76d1cf91e04c35"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3750f6cb757d1677306aa6fd268edbf"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnd_thread.html#ab3750f6cb757d1677306aa6fd268edbf">ThreadFunction</a> ()=0</td></tr>
<tr class="memdesc:ab3750f6cb757d1677306aa6fd268edbf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Thread function to execute in a perpetual loop until the thread is terminated.  <a href="classnd_thread.html#ab3750f6cb757d1677306aa6fd268edbf">More...</a><br /></td></tr>
<tr class="separator:ab3750f6cb757d1677306aa6fd268edbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classnd_class_alloc"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classnd_class_alloc')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classnd_class_alloc.html">ndClassAlloc</a></td></tr>
<tr class="memitem:affad975c41ed36eae8c71e3468fc12e3 inherit pub_methods_classnd_class_alloc"><td class="memItemLeft" align="right" valign="top"><a id="affad975c41ed36eae8c71e3468fc12e3"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnd_class_alloc.html#affad975c41ed36eae8c71e3468fc12e3">ndClassAlloc</a> ()</td></tr>
<tr class="memdesc:affad975c41ed36eae8c71e3468fc12e3 inherit pub_methods_classnd_class_alloc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Empty default constructor. <br /></td></tr>
<tr class="separator:affad975c41ed36eae8c71e3468fc12e3 inherit pub_methods_classnd_class_alloc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8fea90aa3642db2007a191975bb169ce inherit pub_methods_classnd_class_alloc"><td class="memItemLeft" align="right" valign="top"><a id="a8fea90aa3642db2007a191975bb169ce"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnd_class_alloc.html#a8fea90aa3642db2007a191975bb169ce">~ndClassAlloc</a> ()</td></tr>
<tr class="memdesc:a8fea90aa3642db2007a191975bb169ce inherit pub_methods_classnd_class_alloc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Empty. <br /></td></tr>
<tr class="separator:a8fea90aa3642db2007a191975bb169ce inherit pub_methods_classnd_class_alloc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classnd_semaphore"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classnd_semaphore')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classnd_semaphore.html">ndSemaphore</a></td></tr>
<tr class="memitem:ab37e156217b5f9c65d4062c384bacef5 inherit pub_methods_classnd_semaphore"><td class="memItemLeft" align="right" valign="top"><a id="ab37e156217b5f9c65d4062c384bacef5"></a>
D_CORE_API&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnd_semaphore.html#ab37e156217b5f9c65d4062c384bacef5">ndSemaphore</a> ()</td></tr>
<tr class="memdesc:ab37e156217b5f9c65d4062c384bacef5 inherit pub_methods_classnd_semaphore"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create and initialize counter to zero. <br /></td></tr>
<tr class="separator:ab37e156217b5f9c65d4062c384bacef5 inherit pub_methods_classnd_semaphore"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32248d41f68f0ccb4464510a777f2c41 inherit pub_methods_classnd_semaphore"><td class="memItemLeft" align="right" valign="top"><a id="a32248d41f68f0ccb4464510a777f2c41"></a>
D_CORE_API&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnd_semaphore.html#a32248d41f68f0ccb4464510a777f2c41">~ndSemaphore</a> ()</td></tr>
<tr class="memdesc:a32248d41f68f0ccb4464510a777f2c41 inherit pub_methods_classnd_semaphore"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy semaphore. <br /></td></tr>
<tr class="separator:a32248d41f68f0ccb4464510a777f2c41 inherit pub_methods_classnd_semaphore"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a984f887a621ca159c77086bb1ae32bb0 inherit pub_methods_classnd_semaphore"><td class="memItemLeft" align="right" valign="top"><a id="a984f887a621ca159c77086bb1ae32bb0"></a>
D_CORE_API ndInt32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnd_semaphore.html#a984f887a621ca159c77086bb1ae32bb0">GetCount</a> () const</td></tr>
<tr class="memdesc:a984f887a621ca159c77086bb1ae32bb0 inherit pub_methods_classnd_semaphore"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns counter counter value. <br /></td></tr>
<tr class="separator:a984f887a621ca159c77086bb1ae32bb0 inherit pub_methods_classnd_semaphore"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a460d327165441b0f5819f2c68b6a345b inherit pub_methods_classnd_semaphore"><td class="memItemLeft" align="right" valign="top">D_CORE_API bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnd_semaphore.html#a460d327165441b0f5819f2c68b6a345b">Wait</a> ()</td></tr>
<tr class="memdesc:a460d327165441b0f5819f2c68b6a345b inherit pub_methods_classnd_semaphore"><td class="mdescLeft">&#160;</td><td class="mdescRight">Synchronize with another threads.  <a href="classnd_semaphore.html#a460d327165441b0f5819f2c68b6a345b">More...</a><br /></td></tr>
<tr class="separator:a460d327165441b0f5819f2c68b6a345b inherit pub_methods_classnd_semaphore"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d8febc2ce897130a20be030fbdd7946 inherit pub_methods_classnd_semaphore"><td class="memItemLeft" align="right" valign="top">D_CORE_API void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnd_semaphore.html#a1d8febc2ce897130a20be030fbdd7946">Signal</a> ()</td></tr>
<tr class="memdesc:a1d8febc2ce897130a20be030fbdd7946 inherit pub_methods_classnd_semaphore"><td class="mdescLeft">&#160;</td><td class="mdescRight">Notify a thread blocked by member function Wait to wake and test m_counter again.  <a href="classnd_semaphore.html#a1d8febc2ce897130a20be030fbdd7946">More...</a><br /></td></tr>
<tr class="separator:a1d8febc2ce897130a20be030fbdd7946 inherit pub_methods_classnd_semaphore"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a17f29c4a73fb28a5dfd298f92d9de2ff inherit pub_methods_classnd_semaphore"><td class="memItemLeft" align="right" valign="top"><a id="a17f29c4a73fb28a5dfd298f92d9de2ff"></a>
D_CORE_API void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnd_semaphore.html#a17f29c4a73fb28a5dfd298f92d9de2ff">Terminate</a> ()</td></tr>
<tr class="memdesc:a17f29c4a73fb28a5dfd298f92d9de2ff inherit pub_methods_classnd_semaphore"><td class="mdescLeft">&#160;</td><td class="mdescRight">Notify a waiting thread on member function Wait that is time to exit the thread loop. <br /></td></tr>
<tr class="separator:a17f29c4a73fb28a5dfd298f92d9de2ff inherit pub_methods_classnd_semaphore"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classnd_atomic"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classnd_atomic')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classnd_atomic.html">ndAtomic&lt; bool &gt;</a></td></tr>
<tr class="memitem:a25086f28f3d4e36a4c2c131870e660c2 inherit pub_methods_classnd_atomic"><td class="memItemLeft" align="right" valign="top"><a id="a25086f28f3d4e36a4c2c131870e660c2"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>ndAtomic</b> (bool val)</td></tr>
<tr class="separator:a25086f28f3d4e36a4c2c131870e660c2 inherit pub_methods_classnd_atomic"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55215e516c6aa62bbdd238291e80e49a inherit pub_methods_classnd_atomic"><td class="memItemLeft" align="right" valign="top"><a id="a55215e516c6aa62bbdd238291e80e49a"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>ndAtomic</b> (const <a class="el" href="classnd_atomic.html">ndAtomic</a>&lt; bool &gt; &amp;copy)</td></tr>
<tr class="separator:a55215e516c6aa62bbdd238291e80e49a inherit pub_methods_classnd_atomic"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa11bd73a64a8ed07c058eb3a51f632ec inherit pub_methods_classnd_atomic"><td class="memItemLeft" align="right" valign="top"><a id="aa11bd73a64a8ed07c058eb3a51f632ec"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (bool value)</td></tr>
<tr class="separator:aa11bd73a64a8ed07c058eb3a51f632ec inherit pub_methods_classnd_atomic"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a45ed70ca2065f7aa5014c5c555c1336d"><td class="memItemLeft" align="right" valign="top"><a id="a45ed70ca2065f7aa5014c5c555c1336d"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>Release</b> ()</td></tr>
<tr class="separator:a45ed70ca2065f7aa5014c5c555c1336d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_static_methods_classnd_class_alloc"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classnd_class_alloc')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classnd_class_alloc.html">ndClassAlloc</a></td></tr>
<tr class="memitem:a1f1766c498c6231d24c63582106d2cfc inherit pub_static_methods_classnd_class_alloc"><td class="memItemLeft" align="right" valign="top"><a id="a1f1766c498c6231d24c63582106d2cfc"></a>
D_OPERATOR_NEW_AND_DELETE static D_CORE_API void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnd_class_alloc.html#a1f1766c498c6231d24c63582106d2cfc">Malloc</a> (size_t size)</td></tr>
<tr class="memdesc:a1f1766c498c6231d24c63582106d2cfc inherit pub_static_methods_classnd_class_alloc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic allocation for any function subclass from <a class="el" href="classnd_class_alloc.html" title="Base class for providing memory allocation for all other engine classes.">ndClassAlloc</a>. <br /></td></tr>
<tr class="separator:a1f1766c498c6231d24c63582106d2cfc inherit pub_static_methods_classnd_class_alloc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5037cbc14d91b2b5e6b5163ed0ef9757 inherit pub_static_methods_classnd_class_alloc"><td class="memItemLeft" align="right" valign="top"><a id="a5037cbc14d91b2b5e6b5163ed0ef9757"></a>
static D_CORE_API void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnd_class_alloc.html#a5037cbc14d91b2b5e6b5163ed0ef9757">Free</a> (void *const ptr)</td></tr>
<tr class="memdesc:a5037cbc14d91b2b5e6b5163ed0ef9757 inherit pub_static_methods_classnd_class_alloc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic destruction for any function subclass from <a class="el" href="classnd_class_alloc.html" title="Base class for providing memory allocation for all other engine classes.">ndClassAlloc</a>. <br /></td></tr>
<tr class="separator:a5037cbc14d91b2b5e6b5163ed0ef9757 inherit pub_static_methods_classnd_class_alloc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_attribs_classnd_thread_name"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_classnd_thread_name')"><img src="closed.png" alt="-"/>&#160;Public Attributes inherited from <a class="el" href="classnd_thread_name.html">ndThreadName</a></td></tr>
<tr class="memitem:ac052d146e1e8f5ce263c9c3aaf2aa62e inherit pub_attribs_classnd_thread_name"><td class="memItemLeft" align="right" valign="top"><a id="ac052d146e1e8f5ce263c9c3aaf2aa62e"></a>
char&#160;</td><td class="memItemRight" valign="bottom"><b>m_name</b> [32]</td></tr>
<tr class="separator:ac052d146e1e8f5ce263c9c3aaf2aa62e inherit pub_attribs_classnd_thread_name"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Base class for for all multi thread functionality. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a0a691445db4125a0c69fa90e852de123"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0a691445db4125a0c69fa90e852de123">&#9670;&nbsp;</a></span>~ndThread()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">ndThread::~ndThread </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Empty, does not terminate the thread loop. </p>
<p>The thread loop is only terminated after calling Finish. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="aadf8f7045bb22fb23f76d1cf91e04c35"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aadf8f7045bb22fb23f76d1cf91e04c35">&#9670;&nbsp;</a></span>Finish()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ndThread::Finish </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Force the thread loop to terminate. </p>
<p>This function must be call explicitly when the application wants to terminate the thread because the destructor does not do it. <br  />
 </p>

</div>
</div>
<a id="aab115539d769389c3864e38ab4bf90a7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aab115539d769389c3864e38ab4bf90a7">&#9670;&nbsp;</a></span>SetName()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ndThread::SetName </td>
          <td>(</td>
          <td class="paramtype">const char *const&#160;</td>
          <td class="paramname"><em>name</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set thread name. </p>
<p>Useful for when debugging or profiler and application. <br  />
 </p>

</div>
</div>
<a id="ab3750f6cb757d1677306aa6fd268edbf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab3750f6cb757d1677306aa6fd268edbf">&#9670;&nbsp;</a></span>ThreadFunction()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void ndThread::ThreadFunction </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Thread function to execute in a perpetual loop until the thread is terminated. </p>
<p>Each time the thread owner calls function Signal, the loop execute one call to this function and upon return, the thread goes back to wait for another signal <br  />
 or to exit the loop. <br  />
 </p>

<p>Implemented in <a class="el" href="classnd_world_scene.html#a3c78f69e1de5fabb7bc835f46d021431">ndWorldScene</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="classnd_thread.html">ndThread</a></li>
    <li class="footer">Generated by <a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20 </li>
  </ul>
</div>
</body>
</html>
